package com.zlsy.springbootdemo.encryption.common;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @author zhouliang
 * @date 2020/12/17 14:39
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CommonRequest implements Serializable {

  /** 请求报文内容（JSON格式的报文） */
  @JsonProperty("logistics_interface")
  private String logisticsInterface;

  /** 请求签名: sign = MD5By加密方法(content+key[这个key是签名的key，一般来说由接口【被调用方】来提供]) */
  @JsonProperty("data_digest")
  private String dataDigest;

  /** 消息类型：一个系统对外提供的接口可能有很多种，通过这个值去区分是什么接口 */
  @JsonProperty("msg_type")
  private String msgType;

  /** 消息id，由调用方生成唯一的消息id传送给被调用方 */
  @JsonProperty("msg_id")
  private String msgId;

  /** 调用方的系统编码（由被调用方分发，由这个编码来控制可以调用【被调用方】的哪些接口，简单来说就是接口权限的控制） */
  @JsonProperty("partner_code")
  private String partnerCode;

  /** 调用方密钥相关的编码（还是由被调用方来分发，这个编码来控制调用方的签名key以及AES key等相关密钥） */
  @JsonProperty("from_code")
  private String fromCode;
}
